package com.cheejee.goodscenter.service;

import java.util.List;

import javax.validation.constraints.NotNull;

import org.springframework.validation.annotation.Validated;

import com.cheejee.goodscenter.module.dto.SkuSpecificDto;
import com.cheejee.goodscenter.module.entity.GoodsSpecific;
import com.github.pagehelper.Page;

/**
 * @author CARRY
 * @Date 2020年10月28日上午3:03:46
 */
@Validated
public interface GoodsSpecificService {

	
	/**
	 * 按条件查询商品规格
	 *
	 * @param goodsId
	 * @param specificName
	 * @return
	 */
	Page<GoodsSpecific> queryGoodsSpecific(Long goodsId, String specificName, String specificValue, int pageNum, int pageSize);
	
	GoodsSpecific queryGoodsSpecificById(@NotNull(message = "规格ID不能为空")Long id);
	
	
	/**
	 * 添加商品规格
	 *
	 * @param specific
	 * @return
	 */
	int addGoodsSpecific(List<GoodsSpecific> specific);
	
	/**
	 * 不能删除已经被SKU使用的规格。
	 * 删除的多个规格中，如果有某个规格不能被删除，则会删除其他可以删除的规格后抛出异常。
	 *
	 * @param id
	 * @return
	 */
	int deleteGoodsSpecific(@NotNull(message = "删除的规格ID不能为空")Long...id);
	
	/**
	 * 修改规格
	 *
	 * @param specific
	 * @return
	 */
	int changeGoodsSpecific(GoodsSpecific specific);
	
}
